Nginx服务器配置
2023/09/11 10:45:34
Nginx服务器配置
背景
- 需求:将本地项目build后同时放到云服务器上,或解决跨域问题;
代码
server{
listen 7444; # 监听的接口
server name 139.159.202.250; # localhost或者本地的IP
location / {
root C:/ins/lot;
try files $uri $uri/ /index.html
}
# 跨域配置
location /app {
# 在这里配置跨域规则
add header 'Access-Control-Allow-Origin';
add header'Access-Control-A11ow-Methods""GET,POST,OPTIONS;
proxy_pass https://geoapp.gzpi.com.cn/ddy_yp; # 代理到前端应用
proxy set header Host $host;
}
}
问题解决
- 端口长度问题:nginx: [emerg] could not build server_names_hash, you should increase server_names_hash_bucket_size: 32
server_names_hash_bucket_size 64; # 根据需要适当调整大小
- 出现/assets无法定位的问题
location /assets {
alias /path/to/your/assets/directory;
}
- 扩展:alias和root区别
- root:
- root 指令用于设置一个根目录,它定义了一个基本的文件系统路径,用于构建请求的最终文件路径。
- 当使用 root 时,Nginx 会将请求的 URI 直接附加到根目录,构成请求的文件路径。例如,如果根目录是 /var/www,并且请求的 URI 是 /images/pic.jpg,则最终的文件路径将是 /var/www/images/pic.jpg。
- root 通常用于处理静态文件,例如 HTML、CSS、JavaScript 文件等。它适用于在请求中保留 URI 结构的情况。
location /static/ {
root /var/www;
}
- alias:
- alias 指令用于指定一个别名,它可以更灵活地映射请求的 URI 到文件系统的不同位置。
- 当使用 alias 时,Nginx 会将请求的 URI 替换为指定的别名路径,然后寻找文件。这意味着你可以将请求的 URI 与文件系统的实际路径完全分开。
- alias 通常用于处理特定类型的请求,例如代理服务器中的 URL 重写或者处理文件存储在不同位置的情况。
location /images/ {
alias /var/www/images/;
}